package com.blrs.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.blrs.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.blrs.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 自建项目对象 self_built_project
 * 
 * @author yang
 * @date 2023-12-01
 */
public class SelfBuiltProject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自建项目id */
    private String projectId;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String projectNo;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String enterpriseName;

    /** 项目负责人 */
    @Excel(name = "项目负责人")
    private String projectHead;

    /** 计划完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planStartTime;

    /** 计划完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planCompleTime;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    /** 创建人id */
    private Long createId;

    /** 创建人姓名 */
    @Excel(name = "创建人姓名")
    private String createName;

    /** 附件 */
    private String fileUpload;

    /** 操作时间 */
    private Date operateTime;

    /** 操作人id */
    private Long operateId;

    /** 部门id */
    private Long departmentId;

    /** 部门名称 */
    private String departmentName;

    /** 组织机构id */
    private Long organizationId;

    /** 机构名称 */
    private String organizationName;

    /** 主分类id */
    private String classificationId;

    /** 归属于 */
    private Long belongTo;
    /** 费用 */
    @Excel(name = "费用")
    private BigDecimal fee;

    private String url;

    /**
     * 查询条件：计划开始时间开始
     */
  private Date initStartDate;

    /**
     * 查询条件：计划开始时间结束
     * @return
     */
  private Date endStartDate;

    /**
     * 查询条件:计划完成时间开始
     * @return
     */
    private Date initCompleDate;

    /**
     * 询条件:计划完成时间结束
     * @return
     */
    private Date endCompleDate;

    /** 项目类别 :自建/外协 */
    @Excel(name = "项目类别 :自建/外协")
    private String projectType;

    /** 项目介绍 */
    @Excel(name = "项目介绍")
    private String projectIntroduce;

    /** 项目目标 */
    @Excel(name = "项目目标")
    private String projectTarget;

    /** 项目成员 */
    @Excel(name = "项目成员")
    private String projectMember;

    /** 交付人 */
    @Excel(name = "交付人")
    private String projectDeliveryPerson;

    /** 交付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@Excel(name = "交付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deliveryTime;

    /** 项目完成情况 */
    //@Excel(name = "项目完成情况")
    private String projectAccomplish;

    /** 项目核算 */
    //@Excel(name = "项目核算")
    private String projectAccounting;

    /** 项目合作方 */
    //@Excel(name = "项目合作方")
    private String projectPartner;

    /** 合作方评价 */
    //@Excel(name = "合作方评价")
    private String partnerEvaluate;

    /** 项目评价 */
    //@Excel(name = "项目评价")
    private String projectEvaluate;
    private String supplierId;
    private String supplierName;

    public String getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(String supplierId) {
        this.supplierId = supplierId;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public void setProjectType(String projectType)
    {
        this.projectType = projectType;
    }

    public String getProjectType()
    {
        return projectType;
    }
    public void setProjectIntroduce(String projectIntroduce)
    {
        this.projectIntroduce = projectIntroduce;
    }

    public String getProjectIntroduce()
    {
        return projectIntroduce;
    }
    public void setProjectTarget(String projectTarget)
    {
        this.projectTarget = projectTarget;
    }

    public String getProjectTarget()
    {
        return projectTarget;
    }
    public void setProjectMember(String projectMember)
    {
        this.projectMember = projectMember;
    }

    public String getProjectMember()
    {
        return projectMember;
    }
    public void setProjectDeliveryPerson(String projectDeliveryPerson)
    {
        this.projectDeliveryPerson = projectDeliveryPerson;
    }

    public String getProjectDeliveryPerson()
    {
        return projectDeliveryPerson;
    }
    public void setDeliveryTime(Date deliveryTime)
    {
        this.deliveryTime = deliveryTime;
    }

    public Date getDeliveryTime()
    {
        return deliveryTime;
    }
    public void setProjectAccomplish(String projectAccomplish)
    {
        this.projectAccomplish = projectAccomplish;
    }

    public String getProjectAccomplish()
    {
        return projectAccomplish;
    }
    public void setProjectAccounting(String projectAccounting)
    {
        this.projectAccounting = projectAccounting;
    }

    public String getProjectAccounting()
    {
        return projectAccounting;
    }
    public void setProjectPartner(String projectPartner)
    {
        this.projectPartner = projectPartner;
    }

    public String getProjectPartner()
    {
        return projectPartner;
    }
    public void setPartnerEvaluate(String partnerEvaluate)
    {
        this.partnerEvaluate = partnerEvaluate;
    }

    public String getPartnerEvaluate()
    {
        return partnerEvaluate;
    }
    public void setProjectEvaluate(String projectEvaluate)
    {
        this.projectEvaluate = projectEvaluate;
    }

    public String getProjectEvaluate()
    {
        return projectEvaluate;
    }


    public Date getInitCompleDate() {
        return initCompleDate;
    }

    public void setInitCompleDate(Date initCompleDate) {
        this.initCompleDate = initCompleDate;
    }

    public Date getEndCompleDate() {
        return endCompleDate;
    }

    public void setEndCompleDate(Date endCompleDate) {
        this.endCompleDate = endCompleDate;
    }

    public Date getInitStartDate() {
        return initStartDate;
    }

    public void setInitStartDate(Date initStartDate) {
        this.initStartDate = initStartDate;
    }

    public Date getEndStartDate() {
        return endStartDate;
    }

    public void setEndStartDate(Date endStartDate) {
        this.endStartDate = endStartDate;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public BigDecimal getFee() {
        return fee;
    }

    public void setFee(BigDecimal fee) {
        this.fee = fee;
    }

    public void setProjectId(String projectId)
    {
        this.projectId = projectId;
    }

    public String getProjectId() 
    {
        return projectId;
    }
    public void setProjectNo(String projectNo) 
    {
        this.projectNo = projectNo;
    }

    public String getProjectNo() 
    {
        return projectNo;
    }
    public void setProjectName(String projectName) 
    {
        this.projectName = projectName;
    }

    public String getProjectName() 
    {
        return projectName;
    }
    public void setEnterpriseName(String enterpriseName) 
    {
        this.enterpriseName = enterpriseName;
    }

    public String getEnterpriseName() 
    {
        return enterpriseName;
    }
    public void setProjectHead(String projectHead) 
    {
        this.projectHead = projectHead;
    }

    public String getProjectHead() 
    {
        return projectHead;
    }
    public void setPlanStartTime(Date planStartTime) 
    {
        this.planStartTime = planStartTime;
    }

    public Date getPlanStartTime() 
    {
        return planStartTime;
    }
    public void setPlanCompleTime(Date planCompleTime) 
    {
        this.planCompleTime = planCompleTime;
    }

    public Date getPlanCompleTime() 
    {
        return planCompleTime;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setCreateId(Long createId) 
    {
        this.createId = createId;
    }

    public Long getCreateId() 
    {
        return createId;
    }
    public void setCreateName(String createName) 
    {
        this.createName = createName;
    }

    public String getCreateName() 
    {
        return createName;
    }
    public void setFileUpload(String fileUpload) 
    {
        this.fileUpload = fileUpload;
    }

    public String getFileUpload() 
    {
        return fileUpload;
    }
    public void setOperateTime(Date operateTime) 
    {
        this.operateTime = operateTime;
    }

    public Date getOperateTime() 
    {
        return operateTime;
    }
    public void setOperateId(Long operateId) 
    {
        this.operateId = operateId;
    }

    public Long getOperateId() 
    {
        return operateId;
    }
    public void setDepartmentId(Long departmentId) 
    {
        this.departmentId = departmentId;
    }

    public Long getDepartmentId() 
    {
        return departmentId;
    }
    public void setDepartmentName(String departmentName) 
    {
        this.departmentName = departmentName;
    }

    public String getDepartmentName() 
    {
        return departmentName;
    }
    public void setOrganizationId(Long organizationId) 
    {
        this.organizationId = organizationId;
    }

    public Long getOrganizationId() 
    {
        return organizationId;
    }
    public void setOrganizationName(String organizationName) 
    {
        this.organizationName = organizationName;
    }

    public String getOrganizationName() 
    {
        return organizationName;
    }
    public void setClassificationId(String classificationId) 
    {
        this.classificationId = classificationId;
    }

    public String getClassificationId() 
    {
        return classificationId;
    }
    public void setBelongTo(Long belongTo) 
    {
        this.belongTo = belongTo;
    }

    public Long getBelongTo() 
    {
        return belongTo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("projectId", getProjectId())
            .append("projectNo", getProjectNo())
            .append("projectName", getProjectName())
            .append("enterpriseName", getEnterpriseName())
            .append("projectHead", getProjectHead())
            .append("planStartTime", getPlanStartTime())
            .append("planCompleTime", getPlanCompleTime())
            .append("status", getStatus())
            .append("createId", getCreateId())
            .append("createName", getCreateName())
            .append("createTime", getCreateTime())
            .append("remark", getRemark())
            .append("fileUpload", getFileUpload())
            .append("operateTime", getOperateTime())
            .append("operateId", getOperateId())
            .append("departmentId", getDepartmentId())
            .append("departmentName", getDepartmentName())
            .append("organizationId", getOrganizationId())
            .append("organizationName", getOrganizationName())
            .append("classificationId", getClassificationId())
            .append("belongTo", getBelongTo())
                .append("fee", getFee())
                .append("projectType", getProjectType())
                .append("projectIntroduce", getProjectIntroduce())
                .append("projectTarget", getProjectTarget())
                .append("projectMember", getProjectMember())
                .append("projectDeliveryPerson", getProjectDeliveryPerson())
                .append("deliveryTime", getDeliveryTime())
                .append("projectAccomplish", getProjectAccomplish())
                .append("projectAccounting", getProjectAccounting())
                .append("projectPartner", getProjectPartner())
                .append("partnerEvaluate", getPartnerEvaluate())
                .append("projectEvaluate", getProjectEvaluate())
                .toString();
    }
}
